It can be necessary in a variety of database applications to perform substring searches on very large data sets, for example those having up to 100 million, 500 million, or even more separate records. Such large data sets can present a number of challenges in performance, memory usage, and the like, particularly in use cases in which the records are searched for one or more substrings.